#include <iostream>
using namespace std;

class Base
{
	protected :
		int id;
	public :
		Base(int val = 0) :
			id(val)
		{
			cout << "<Base()>" << endl;
		}
};
/*
class C1 : public Base
{
	public :
		C1(int val) :
			id(val)
		{
			cout << "<C1()>" << endl;
		}
};
*/

class C2 : public Base
{
	public :
		C2(int val) :
			Base(val)
		{
			cout << "<C2()>" << endl;
		}
};

class C3 : public Base
{
	public :
		C3(int val) :
			Base(val + id)
		{
			cout << "<C3()>" << endl;
		}
};

class C4 : public Base
{
	public :
		C4() 
		{
			cout << "<C4()>" << endl;
		}
};

int main()
{
	C2 c2(1);
	C3 c3(2);
	C4 c4();
}
